home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / modula2 / 359 < prev    next >
Encoding:
Internet Message Format  |  1996-08-06  |  5.2 KB

  1. Path: fourier.newcastle.edu.au!peter
  2. From: peter@fourier.newcastle.edu.au (Peter Moylan)
  3. Newsgroups: comp.lang.modula2
  4. Subject: Re: Other Modula-2 Problems
  5. Date: 27 Feb 1996 22:41:48 GMT
  6. Organization: The University of Newcastle
  7. Message-ID: <4h01bc$8k2@seagoon.newcastle.edu.au>
  8. References: <313171a2.15277270@news-stand.acs.ohio-state.edu>
  9. Reply-To: peter@tesla.newcastle.edu.au
  10. NNTP-Posting-Host: fourier.newcastle.edu.au
  11. X-Newsreader: TIN [version 1.2 PL2]
  12.  
  13. M. Klepcyk (mjk+@osu.edu) wrote:
  14.  
  15. >I have some other questions also.  I have to make a program that uses
  16. >infinite series to approximate the value of SIN (a).  The line that my
  17. >teacher gave me for this is: "sin(a)=a-a3/3!+a5/5!-a7/7!+a9/9!...."
  18. >What does this translate to in the way of a formula?  I need to know
  19. >this so I can write a procedure that will use the variable that will
  20. >obviously be involved.
  21.  
  22. Come on, this is too easy.  You should work this one out
  23. for yourself.
  24.  
  25. >Another problem concerns writing a procedure that will computer the
  26. >binary XOR's of two decimal numbers.  I know how to get the binary
  27. >values for each of the decimal numbers (using MOD & DIV), but how do I
  28. >compare the two binary numbers when I'm finished with this?  Is there
  29. >some kind of comparison command like with strings?
  30.  
  31. This, however, deserves more comment.  I've noticed that
  32. students often get confused over what is meant by "binary number"
  33. and "decimal number" in the context of programming.
  34.  
  35. The names "binary" and "decimal" refer to the _representation_
  36. of a number, as distinct from the underlying object which is the
  37. number itself.  You're probably aware that "101 binary" and
  38. "5 decimal" are not two distinct numbers, but instead are two
  39. alternative ways of writing the _same_ number.  It's a bit like
  40. saying that "pomme" and "apple" are two ways of saying the
  41. same thing: different languages are used, but despite the
  42. different words we're still talking about the same fruit.
  43.  
  44. When manipulating numbers in a computer program, we have to be
  45. aware of a number of different concepts:
  46.  
  47.  1. The number itself.  This is an abstract object which can
  48.     be defined by, for example, a mathematician's set of axioms
  49.     for arithmetic.  I can't write down an example, because as
  50.     soon as I'd written it down I would have written a
  51.     representation of the number, rather than the number itself.
  52.  
  53.  2. The representation of the number inside the computer's
  54.     memory.  For most present-day computers this is a binary
  55.     representation - or, more precisely, it is a collection 
  56.     of electrical signals which in turn are representations of
  57.     binary digits - but it doesn't have to be.  A hardware
  58.     designer could, if he wished, build a computer in which
  59.     ternary representations were used internally.
  60.  
  61.  3. The representation of the number in the source code of
  62.     your computer program.  This depends on the rules of the
  63.     programming language.  For most programming languages a
  64.     decimal notation is used, but there are other possibilities.
  65.     (Modula-2 also has a way to use octal or hexadecimal
  66.     notation.)  The important point is that the representation
  67.     doesn't have to be - and usually isn't - the same as the
  68.     representation in 2 above.  The compiler takes care of
  69.     translating the notation.
  70.  
  71.  4. The representation of the number in the external interface;
  72.     for example, the way the number is typed at the keyboard, or the
  73.     way it is printed on the screen.  This depends on the I/O
  74.     routines you use.  The I/O routines most commonly used
  75.     perform a translation between an external notation
  76.     (usually decimal) and an internal representation (usually
  77.     binary).  But that's not compulsory, you could write your
  78.     own formatting procedures that used any base you liked.
  79.  
  80. This might all sound like quibbling, but it has a bearing on
  81. your question.  Let's look at the question again.  You said
  82. "compute the binary XORs of two decimal numbers".  Right there,
  83. the problem is badly posed.  What it should say is something
  84. like "compute the binary XORs of two numbers".  They're
  85. numbers, not decimal numbers, and the distinction is important.
  86. There's no such thing as a decimal number.  (Although,
  87. informally, we often use the phrase "decimal number" as a
  88. shorthand way of saying "decimal representation of a number"
  89. - which in some ways is a pity, because it's this sloppy
  90. terminology which is the root of the confusion.)
  91.  
  92. When you write a statement like "abc := 23", is abc a decimal
  93. number?  Most decidedly not!  The character string "23" is the
  94. decimal representation of a number, but that's where it ends.
  95. The variable abc holds a number - not a decimal number - and,
  96. depending on your computer hardware, the internal representation
  97. is probably binary.
  98.  
  99. Now, this doesn't give an answer to your original question.
  100. I don't want to give an answer, because I think it's
  101. something that you have to work out for yourself.  But
  102. I'll at least give you a hint: if you're thinking of using
  103. DIV and MOD to convert between decimal and binary, then
  104. you're completely on the wrong track.  You shouldn't have
  105. to do any conversions.
  106.  
  107. --
  108. Peter Moylan                           peter@ee.newcastle.edu.au
  109.                   http://www.eng.newcastle.edu.au/ee/Moylan.html
  110. OS/2 freeware list at 
  111.       http://www.eng.newcastle.edu.au/ee/Moylan/os2/os2info.html
  112.